package top.suven.base.http.enums;


import java.util.HashMap;
import java.util.Map;

/**
 * @Title: MsgEnumType.java
 * @author Joven.wang
 * @date 2015年2月10日
 * @version V1.0
 * @Description: TODO(说明) 此类封装了,从第三方平台的返回code,转换成业务逻辑用户错误提示信息; eg:
 *               SYS_CODE_为前缀,后缀编码为第三方反回code信息,括号为提前端编码和提示信息;
 */

public enum MsgEnumType implements IMsgEnumType {
	
	
	/** 编码规范说明: 11 01 001 错误编码的意思,第一位(1)代码是看7.0 app 2.0 系统,
	 * 第2位是消息分类: 1.提示,2.连接,3.跳转
	 第三四位( eg: 01用户信息模块, 02礼物模块),第四五六位(该模块用到的返回提示用号的编码code)
	1. 1 00 01 - 100 99(共99个系统级别) 是手端(看7.0 app 2.0) 应用后台系统级别返回来的统一规范编码*/

//	/** 1--酷狗平台接口系统返回基本是5位返回,手机端以六位数据从200001开始 */
	/** 繁星操作异常! */
	SYS_SMOKE_CODE(1100105,"您的帐号因违规被封号"),

	/** 手机端后台返回前端规范规范统一以六位数据返回,特殊情况兼容保留 */
	/** 1--繁星接口系统返回基本是5位返回,手机端以六位数据从100001开始 */
	/** FX_CODE_10001,1001是繁星返回错误码,括号为提前端编码和提示信息 */

	
	;

	
	private int code;
	private String msg;

	private static Map<String, IMsgEnumType> msgTypeMap = new HashMap<>();
	private static Map<Integer, Integer> checkTypeMap = null;
	static {
		checkTypeMap  = new HashMap<>();
		for(MsgEnumType msgType : values()) {
			msgTypeMap.put(msgType.name(), msgType);
			if(null != checkTypeMap.get(msgType.getCode())){
				throw new RuntimeException(msgType.getCode()+" and "+ msgType.getMsg() +"is exist ");
			}
			checkTypeMap.put(msgType.getCode(), 0);
		}
		checkTypeMap = null;
	}

	MsgEnumType(int code,String msg) {
		this.code = code;
		this.msg = msg;
	}
	
	public int getCode() {
		return code;
	}
	public String getMsg() {
		return msg;
	}
	
	
	
	


	@Override
	public String getProject() {
		return null;
	}

}
